home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / man-db.postinst < prev    next >
Text File  |  2009-09-07  |  4KB  |  128 lines

  1. #!/bin/sh -e
  2.  
  3. run_mandb () {
  4.     if [ -f /CurrentlyBuilding ]; then
  5.     # Skip building the database when running in a buildd environment,
  6.     # to avoid wasting time. (At the moment, this check only works for
  7.     # Ubuntu's buildds. Furthermore, detectable buildds are a
  8.     # double-edged sword, so maybe this should be replaced with the
  9.     # ability to preseed something to prevent building the database.)
  10.     echo "... skipping, since this is a buildd" >&2
  11.     return 0
  12.     fi
  13.     # start-stop-daemon isn't available when running from debootstrap.
  14.     perl -e '@pwd = getpwnam("man"); $( = $) = $pwd[3]; $< = $> = $pwd[2];
  15.          exec "/usr/bin/mandb", @ARGV' -- "$@" || true
  16. }
  17.  
  18. if [ "$1" = triggered ]; then
  19.     # We don't print a status message here, as dpkg already said
  20.     # "Processing triggers for man-db ...".
  21.     run_mandb -pq
  22.     exit 0
  23. fi
  24.  
  25. [ "$1" = configure ] || exit 0
  26.  
  27. oldcatdir=/var/catman
  28. catdir=/var/cache/man
  29. maybesetuid='man mandb'
  30. conffile=/etc/manpath.config
  31.  
  32. . /usr/share/debconf/confmodule
  33. db_version 2.0
  34. db_get man-db/install-setuid
  35.  
  36. # Sorry about this, but #98224 is right - statoverrides don't work as
  37. # cleanly as I'd hoped here. I'm going to have to carry around some cruft
  38. # for a while.
  39. for x in $maybesetuid; do
  40.     if dpkg --compare-versions "$2" eq 2.3.18-4 && \
  41.         [ "`dpkg-statoverride --list /usr/lib/man-db/$x`" = \
  42.           "man root 4755 /usr/lib/man-db/$x" ]; then
  43.     dpkg-statoverride --remove /usr/lib/man-db/$x
  44.     fi
  45. done
  46.  
  47. if [ "$RET" = true ]; then
  48.     # man and mandb are to be installed setuid man.
  49.     owner=man:root
  50.     mode=4755
  51. else
  52.     # man and mandb are not to be installed setuid.
  53.     owner=root:root
  54.     mode=0755
  55. fi
  56.  
  57. for x in $maybesetuid; do
  58.     # No statoverrides available or none exist for us ...
  59.     if [ ! -x /usr/sbin/dpkg-statoverride ] || \
  60.         ! dpkg-statoverride --list /usr/bin/$x >/dev/null; then
  61.     chown $owner /usr/bin/$x || true
  62.     chmod $mode  /usr/bin/$x
  63.     fi
  64. done
  65.  
  66. if [ -e /etc/cron.daily/man.moved-by-preinst ]; then
  67.     rm /etc/cron.daily/man.moved-by-preinst
  68. fi
  69. if [ -e /etc/cron.weekly/catman.moved-by-preinst ]; then
  70.     rm /etc/cron.weekly/catman.moved-by-preinst
  71. fi
  72.  
  73. if dpkg --compare-versions "$2" lt 2.3.18; then
  74.     # /usr/local/man now mapped to /var/cache/man/oldlocal
  75.     if [ -d $catdir/local ] && [ ! -d $catdir/oldlocal ]; then
  76.     mv -f $catdir/local $catdir/oldlocal
  77.     fi
  78. fi
  79.  
  80. if [ -d $catdir ]; then
  81.     # Catdirs sometimes used to be created with the wrong permissions.
  82.     if dpkg --compare-versions "$2" lt 2.3.20-4; then
  83.     chown -R man /var/cache/man || true
  84.     fi
  85. else
  86.     # Old packages removed catpages on upgrade. The preinst hack should have
  87.     # avoided this, but let's be sure.
  88.     install -d -o man -g root -m 02755 $catdir
  89. fi
  90.  
  91. build_db=0
  92.  
  93. if dpkg --compare-versions "$2" lt 2.3.16 || \
  94.    ([ ! -f $catdir/index.db ] && [ ! -f $catdir/index.bt ]); then
  95.     # All versions before 2.3.17.1-1 removed cat page hierarchies on
  96.     # upgrade. Since then a preinst hack means upgrades from 2.3.16 or later
  97.     # won't do this, but the hack is nasty enough that I don't want to
  98.     # extend it back beyond then. Thus, we need to build the database from
  99.     # scratch on old upgrades. This also covers fresh installs.
  100.     build_db=1
  101. elif dpkg --compare-versions "$2" lt 2.4.2-1; then
  102.     # At 2.3.17.1-5, the database version number changed to 2.3.2.
  103.     # At 2.4.0-1, the database version number changed to 2.4.1 and we
  104.     # moved from libdb2 to libdb3.
  105.     # At 2.4.2-1, we moved from libdb3 to libgdbm3.
  106.     build_db=1
  107.  
  108.     # Clean up old btree databases from before 2.4.2-1. They're useless now.
  109.     find /var/cache/man -name index.bt -print0 | xargs -0r rm -f
  110. fi
  111.  
  112. if [ $build_db -eq 1 ]; then
  113.     # Chances are we're being run from debootstrap, which will have problems
  114.     # if mandb runs backgrounded for too long (bug #100616).
  115.     echo "Building database of manual pages ..." >&2
  116.     run_mandb -cq
  117. else
  118.     # Otherwise, just update the database in the foreground. It's unlikely
  119.     # to take very long, and configuration needs to cover everything that
  120.     # happens when we're triggered.
  121.     echo "Updating database of manual pages ..." >&2
  122.     run_mandb -pq
  123. fi
  124.  
  125.  
  126.  
  127. exit 0
  128.